using System;
using System.Collections.Generic;
using System.Text;

namespace UtilZ.Dotnet.Ex.ParaManagement
{
    /// <summary>
    /// 参数变更事件
    /// </summary>
    public class ParaChangeArgs : EventArgs
    {
#if NET4_0
        /// <summary>
        /// 增加参数集合
        /// </summary>
        public List<ParaChangeItem> AddParas { get; private set; } = null;

        /// <summary>
        /// 移除参数集合
        /// </summary>
        public List<ParaChangeItem> RemoveParas { get; private set; } = null;

        /// <summary>
        /// 值更新参数集合
        /// </summary>
        public List<ParaChangeItem> UpgradeParas { get; private set; } = null;
#else
        /// <summary>
        /// 增加参数集合
        /// </summary>
        public IReadOnlyList<ParaChangeItem> AddParas { get; private set; } = null;

        /// <summary>
        /// 移除参数集合
        /// </summary>
        public IReadOnlyList<ParaChangeItem> RemoveParas { get; private set; } = null;

        /// <summary>
        /// 值更新参数集合
        /// </summary>
        public IReadOnlyList<ParaChangeItem> UpgradeParas { get; private set; } = null;
#endif


        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="addParas">增加参数集合</param>
        /// <param name="removeParas">移除参数集合</param>
        /// <param name="upgradeParas">值更新参数集合</param>
        public ParaChangeArgs(List<ParaChangeItem> addParas, List<ParaChangeItem> removeParas, List<ParaChangeItem> upgradeParas)
        {
            this.AddParas = addParas;
            this.RemoveParas = removeParas;
            this.UpgradeParas = upgradeParas;
        }
    }

}
